Diversity of federated content items in a social network

ABSTRACT

Systems and methods for providing diversity of content items of a social network includes determining a utility score individually for each of a plurality of content items. The plurality of content items are ranked according to their individually determined utility scores. At least some of the plurality of content items are assigned to positions in a user interface according to the rank. The assigning of positions is iteratively adjusted according to a diversity criterion. A user interface displays the at least some of the plurality of content items according to the positions as iteratively adjusted.

PRIORITY

This application claims the benefit of priority to U.S. ProvisionalApplication No. 62/110,283, “SOCIAL NETWORK CONTENT FEDERATION”, filedJan. 30, 2015, which is incorporated by reference herein in itsentirety.

TECHNICAL FIELD

The subject matter disclosed herein generally relates to the federationof content from multiple content sources in a social network.

BACKGROUND

Social networks conventionally obtain content items from multiplecontent item sources. The content items as obtained may then bedisplayed to users of the social network on a user interface, such as anews stream, dedicated windows or spaces on a visual display, separatewindows, and the like. Content item sources may include user profilesand changes thereto stored by the social network, entities that providesponsored content or databases in which the content items are stored,and organic content recommendation engines, such as engines that provideparticular types of content, including job recommendations, recommendedconnections with members of the social network, and content that othermembers and users of the social network have found interesting.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments are illustrated by way of example and not limitation inthe figures of the accompanying drawings.

FIG. 1 is a block diagram illustrating various components or functionalmodules of a social network system, consistent with some examples.

FIG. 2 is a simplified illustration of a social network system includingcontent item sources in relation to the federator module, in an exampleembodiment.

FIG. 3 is a detailed block diagram of a federator module, in an exampleembodiment.

FIG. 4 is a simplified image of a user interface as provided by a socialnetwork system, in an example embodiment.

FIG. 5 is a graphic illustration of a relationship between the selectionmetric and the value metric, in an example embodiment.

FIG. 6 is a flowchart for diversity in federated content items in asocial network, in an example embodiment.

FIG. 7 is a block diagram illustrating components of a machine,according to some example embodiments.

DETAILED DESCRIPTION

Example methods and systems are directed to the federation of contentfrom multiple content sources in a social network. Examples merelytypify possible variations. Unless explicitly stated otherwise,components and functions are optional and may be combined or subdivided,and operations may vary in sequence or be combined or subdivided. In thefollowing description, for purposes of explanation, numerous specificdetails are set forth to provide a thorough understanding of exampleembodiments. It will be evident to one skilled in the art, however, thatthe present subject matter may be practiced without these specificdetails.

In various examples of social networks, the sources of content items maypush content items to be displayed on a user interface based oncriteria, the combination of which are unique to the content item sourceor which are not necessarily common to all of the content item sources.Thus, for instance, a sponsored content item source may factor incriteria such as an amount that a sponsoring entity has bid to place asponsored content item in a user's news feed while a job recommendationengine may utilize criteria that focus on a user's qualifications forthe job and their current employment status. Such diverse content itemsources with selection criteria that are specific to the content itemsprovided by the various individual content item sources may contributeto a rich and diverse user experience with the social network.

However, such arrangements may not be sensitive to the quality of thecontent item sources and the need or desire to balance the display ofthe content items obtained therefrom appropriately. In particular, if acontent item source has a relatively poor selection criteria then thecontent items provided by the content item source may be of similarlypoor quality or relevance to the user to whom the content items aredisplayed. Furthermore, a single content item source may provide morecontent items than are necessarily desired without the capacity for thesocial network provider to understand if the large numbers of contentitems are desirable because they are highly relevant to the user orundesirable because they are of poor or middling quality and their sheetnumber may be overwhelming or may diminish the user experience.

A content source federator has been developed that may address the aboveissues, among others, by obtaining content items from the variouscontent item sources according to the individual content item sources'own selection criteria. The federator may assess some or all of thecontent item sources for relative quality and/or reliability and adjustthe perceived value of the content items received from the respectivecontent item sources accordingly. The federator may then provide thecontent items received from the individual content item sourcesaccording to the adjusted value of the content items and according toany of a variety of considerations that may reflect on what contentitems are presented to the users of the social network.

FIG. 1 is a block diagram illustrating various components or functionalmodules of a social network system 100, consistent with some examples. Afront end 101 consists of a user interface module (e.g., a web server)102, which receives requests from various client-computing devices, andcommunicates appropriate responses to the requesting client devices. Forexample, the user interface module(s) 102 may receive requests in theform of Hypertext Transport Protocol (HTTP) requests, or otherweb-based, application programming interface (API) requests. Anapplication logic layer 103 includes various application server modules104, which, in conjunction with the user interface module(s) 102, maygenerate various user interfaces (e.g., web pages, applications, etc.)with data retrieved from various data sources in a data layer 105. Insome examples, individual application server modules 104 may be used toimplement the functionality associated with various services andfeatures of the social network service. For instance, the ability of anorganization to establish a presence in the social graph of the socialnetwork system 100, including the ability to establish a customized webpage on behalf of an organization, and to publish messages or statusupdates on behalf of an organization, may be services implemented inindependent application server modules 104. Similarly, a variety ofother applications or services that are made available to members of thesocial network service may be embodied in their own application servermodules 104. Alternatively, various applications may be embodied in asingle application server module 104. In some examples, the socialnetwork system 100 includes a content item publishing module 106, suchas may be utilized to receive content, such as electronic messages,posts, links, images, videos, and the like, and publish the content tothe social network.

One or more of the application server modules 104, the content itempublishing module 106, or the social network system 100 generally mayinclude a search module 108. As will be disclosed in detail herein, thesearch module 108 may identify websites or content items for displaybased on a search term as entered by a searcher. The search module 108may utilize member profiles and user activities in the generation ofsearch results. Such member profiles and activities may be from thesearcher making a present search or by searches performed by the same orother users in the past. The search module 108 may generate results fora search based on the member profiles and activities as well asconventional search factors, such as keywords and link density.

The search module 108 may be implemented on a separate server or may bepart of a server that provides other portions of the social networksystem 100. Thus, it is to be understood that while the search module108 is described as an integral component of a social network, theprinciples described herein may be applied without the search module 108being an integral part of a social network or even necessarily utilizingdata from a social network if content items 122 are available fromalternative sources.

As illustrated, the data layer 105 includes, but is not necessarilylimited to, several databases 110, 112, 114, such as a database 110 forstoring profile data 116, including both member profile data as well asprofile data for various organizations. Consistent with some examples,when a person initially registers to become a member of the socialnetwork service, the person may be prompted to provide some personalinformation, such as his or her name, age (e.g., birthdate), gender,interests, contact information, home town, address, the names of themember's spouse and/or family members, educational background (e.g.,schools, majors, matriculation and/or graduation dates, etc.),employment history, skills, professional organizations, and so on. Thisinformation is stored, for example, in the database 110. Similarly, whena representative of an organization initially registers the organizationwith the social network service, the representative may be prompted toprovide certain information about the organization. This information maybe stored, for example, in the database 110, or another database (notshown). With some examples, the profile data may be processed (e.g., inthe background or offline) to generate various derived profile data. Forexample, if a member has provided information about various job titlesthe member has held with the same or different companies, and for howlong, this information can be used to infer or derive a member profileattribute indicating the member's overall seniority level, or senioritylevel within a particular company. With some examples, importing orotherwise accessing data from one or more externally hosted data sourcesmay enhance profile data for both members and organizations. Forinstance, with companies in particular, financial data may be importedfrom one or more external data sources, and made part of a company'sprofile.

Once registered, a member may invite other members, or be invited byother members, to connect via the social network service. A “connection”may require a bi-lateral agreement by the members, such that bothmembers acknowledge the establishment of the connection. Similarly, withsome examples, a member may elect to “follow” another member. Incontrast to establishing a connection, the concept of “following”another member typically is a unilateral operation, and at least withsome examples, does not require acknowledgement or approval by themember that is being followed. When one member follows another, themember who is following may receive status updates or other messagespublished by the member being followed, or relating to variousactivities undertaken by the member being followed. Similarly, when amember follows an organization, the member becomes eligible to receivemessages or status updates published on behalf of the organization. Forinstance, messages or status updates published on behalf of anorganization that a member is following will appear in the member'spersonalized data feed or content stream. In any case, the variousassociations and relationships that the members establish with othermembers, or with other entities and objects, are stored and maintainedwithin the social graph database 112.

Activities by users of the social network system 100, including pastsearches that have been conducted by the search module 108, may belogged as activities 118 in the activity and behavior database 114. Suchactivities may include search terms, interactions with search resultsand subsequent engagement with the subject of search results, scoresassigned to such search terms, as disclosed herein, communication withothers via the social network, engagement with content items posted onthe social network, joining groups, following entities, and so forth.

The data layer 105 collectively may be considered a content itemdatabase, in that content items 120, including but not limited to memberprofiles 116, may be stored therein. Additionally or alternatively, acontent item layer 120 may exist in addition to the data layer 105 ormay include the data layer 105. The content item layer 120 may includeindividual content items 122 stored on individual content item sources124. The member profiles 116 and the activities 118 may be understood tobe content items 122, while the profile database 110, the social graphdatabase 112, and the member activity database 114 may also beunderstood to be content item sources 124. Content items 122 may furtherinclude sponsored content items as well as posts to a newsfeed, articlesor links to websites, images, sounds, event notifications and reminders,recommendations to users of the social network for jobs or entities tofollow within the social network, and so forth.

The social network service may provide a broad range of otherapplications and services that allow members the opportunity to shareand receive information, often customized to the interests of themember. For example, with some examples, the social network service mayinclude a photo sharing application that allows members to upload andshare photos with other members. With some examples, members may be ableto self-organize into groups, or interest groups, organized around asubject matter or topic of interest. With some examples, the socialnetwork service may host various job listings providing details of jobopenings with various organizations.

Although not shown, with some examples, the social network system 100provides an application programming interface (API) module via whichthird-party applications can access various services and data providedby the social network service. For example, using an API, a third-partyapplication may provide a user interface and logic that enables anauthorized representative of an organization to publish messages from athird-party application to various content streams maintained by thesocial network service. Such third-party applications may bebrowser-based applications, or may be operating system-specific. Inparticular, some third-party applications may reside and execute on oneor more mobile devices (e.g., phone, or tablet computing devices) havinga mobile operating system.

FIG. 2 is a simplified illustration of the social network system 100including the content item sources 124 in relation to the federatormodule 108, in an example embodiment. The social network system 100 mayallow for the content item sources 124 to be combined into a single feedfor transmission to and/or display on a user interface of a member oruser of the social network. In an example, some or all of the contentitem sources 124 are implemented as an API, such as an http API.

The content item sources 124 may rank the content items 122 storedtherein according to the ranking parameters of the content item source124. Such content item sources 124 may include content item sourcesdisclosed in U.S. Patent Application Publication No. 2014/0143163, “USERCHARACTERISTICS-BASED SPONSORED JOB POSTINGS”, U.S. Patent ApplicationPublication No. 2014/0143323, “USER CHARACTERISTICS-BASED SPONSOREDCOMPANY POSTINGS”, and U.S. Patent Application Publication No.2015/0039406, “INDEPENDENT TARGTED SPONSORED CONTENT MANAGEMENT SYSTEMAND METHOD”, all of which are incorporated by reference herein in theirentirety. The content item sources 124 may thus function as first pastrankers of the content items 122 stored therein or obtained thereby.

The federator module 108 may then rank the content items 122 provided tothe federator module 108 by the content item source 124. As such, thefederator module 108 may function as a second pass ranker. Based on thecontent items 122 as ranked by the federator module 108, the federatormodule 108 may produce as output a content item 122 stream 200 that maybe an http API or any of a variety of other suitable formats known inthe art. The content item stream 200 may be utilized by the messagingpublishing module 106 and/or the user interface module 102 to providethe output to the user interface of the user or member.

A protocol may be defined between the federator module 108 and thecontent item sources 124. The federator module 108 may utilize theprotocol to make requests to the content item sources 124 for rankedcontent items 122 from some or all of the sources 124. The requests maybe according to a conventional http protocol. The content item sources124 may similarly respond according to a conventional http datatransfer.

The content item sources 124 may include or may be modified to includeone or more files or programs that allow the ranked content items 122 tobe transmitted and formatted according to the protocol. In an example,an object notation standard may be utilized to generate the datatransfer of ranked content items 122. In an example, the JavaScriptObject Notation (JSON) standard may be utilized. Libraries that mayprogrammatically generate libraries that may read, validate, serialize,and deserialize the data transfer into language specific datastructures. In the above example utilizing the JSON standard, the datastructures may be Java objects.

As such, the one or more files or programs may include a productspecification file that may be incorporated into a trunk directory ofone or more of the content item sources 124. Additionally, a projectbuild file may likewise be incorporated. A common key, in the aboveexample a JSON coordinate, may be utilized between the productspecification file and the project build file.

A user interface metrics module 202 may identify content items 122 thatproduce or do not produce a user interaction with the content item 122when displayed on a user interface 204 of a user device. In variousexamples, if a user interacts with a content item 122 as displayed onthe user interface 204, such as by clicking a link, sharing the contentitem 122, commenting on the content item 122, and so forth, the userinterface metrics module 202 variously either receives the interactiondirectly or receives an indication of the interaction. For instance,receiving the interaction itself may be to receive the text of a commentthat was entered while receiving an indication of the interaction may beto receive a notice that a comment was entered without receiving thecomment itself. The user interface metrics module 202 is optionallycoupled to the content item sources 124 and may save the interactions asreceived, such as in the activities database 114.

The social network system 100 may provide content items 122 to the userinterface 204 in a federating mode and a testing mode. The socialnetwork system 100 may switch between modes from time to time and fromuser to user. Thus, some users may receive content items 122 as providedby the federator module 108 and other users may receive content items122 with the operation of the federator module 108 reduced or disabledaltogether. In the testing mode, as will be discussed in detail herein,the impact of the operations of the content item sources 124 and theirfunction as first-pass rankers may be assessed using the user interfacemetrics module 202 by varying the display of content items 122 on theuser interface 204. In the federating mode the federator module 108 mayutilize the assessments provided by the user interface metrics module202 to determine the relative effectivity of the content item sources124 at assessing the content items 122 stored thereon and adjust theresultant display of content items 122 on the user interface 204.

The testing mode may be selectively applied to particular components ofthe social network system 100 to obtain particular information, asdisclosed herein. In various examples, individual content item sources124 may be selectively placed in testing mode and their output randomlyor varyingly presented to the user while the output of other contentitem sources 124 may be presented to users according to federationpolicies implemented by the federator module 108. In such examples,newly added or modified content item sources 124 may be dynamicallytested and their results compensated for, as disclosed herein, whileother content item sources 124, such as those that have already beenassessed in the testing mode and incorporated into the federationprotocol as disclosed herein may operate statically outside of thetesting mode.

FIG. 3 is a detailed block diagram of the federator module 108, in anexample embodiment. In such an example, the federator module 108 is aseparately implemented http server. The federator module 108 includes aranker module 300, a feed definition module 302, recommender modules304, and entity resolver modules 306. The some or all of the variousmodules 300, 302, 304, 306 may be separately implemented files operatedon a processor of the server or may be divided between and amongmultiple servers.

The ranker module 300 may obtain collections of content items 122retried from the content item sources 124 as specified by the feeddefinition module 302. The ranker module 300 may de-duplicate thecontent items 122 from the various sources 124, may perform asecond-pass or global ranking of the content items 122, and may providethe result as the output of the federator module 108.

The feed definition module 302 may provide the content items 122 orcause the content items 122 to be provided to the ranker module 300. Thefeed definition module 302 may map an identifier of the feed to beoutput on to the recommender modules 304 and the ranker module 300.Thus, content items 122 may be identified in the recommender modules 304and provided to the ranker module 300 based on the identifier.

The recommender modules 304 may define a mapping between the contentitem sources 124 and a recommender that will provide content items 122based on a request for content items 122 to be provided and one or moreof the resolver modules 306. The resolver modules 306 may optionallycovert a format of content items 122 as obtained from the content itemsources 124 to a common format.

FIG. 4 is a simplified image of a user interface 204 as provided by thesocial network system 100, in an example embodiment. The user interface204 includes a news feed 400 that includes multiple individual positions402 arranged, in this example, in a vertical list with a first position402(1) at the top and lower positions sequentially down the list. Eachposition 402 includes space to display content related to the contentitem 122; in various examples, the content item 122 itself may bedisplayed, for instance if the content item 122 is a link or arenderable image, or data relating to the content item 122 may bedisplayed, such as if the content item 122 needs to be reformatted forthe user interface 204 or the circumstances in which the user interface204 is being displayed. It is to be recognized that the user interface204 is provided for the purposes of an example and that many additionalconfigurations of user interfaces 204 are contemplated and may beutilized consistent with the principles described herein.

The social network system 100 may operate in the testing mode describedabove by obtaining content items 122 from the content item sources 124and displaying the content items 122 on the user interface 204 withoutrespect to the federator module 108. As such, the content item sources124 may function in their first-pass ranker mode without second-passranking provided by the federator module 108. In various examples, thecontent items 122 may still pass through the federator module 108, asillustrated in FIG. 2, but the second-pass ranking function of thefederator module 108 may be disabled.

In an example, at least one of the federator module 108 and the messagepublishing module 106 call to a content item source 124 to obtain atleast one content item 122 for display on the user interface 204. Thecontent item 122 may then be displayed in a particular position 402 ofthe news feed 400. In an example, the position 402 is randomly selectedor pseudo-randomly selected. In an example, the content item 122 may bedisplayed on multiple user interfaces 204 corresponding to multipledifferent users. In such an example, a given content item 122 may beiteratively moved from position 402 to position 402 when it is displayedon multiple user interfaces 204 so as to sequentially be positioned in avariety of positions 402 over time. Additional content items 122 may beobtained from various content item sources 124 and positioned randomlyor varyingly in positions 402 in the various user interfaces 204 so asto fill out the positions 402 of the news feed 400.

In addition to the content items 122 themselves, the content itemsources 124 may provide the first-pass ranking details of each contentitem 122 to the user interface metrics module 202. It is noted andemphasized that, in the testing mode, the content items 122 as providedmay not necessarily be placed according to the first-pass rankingprovided by the content item sources 124. However, the data from thefirst-pass ranking may be utilized by the user interface metrics module202 to assess the quality of the first-pass ranking of the variouscontent item sources 124.

As displayed on the various user interfaces 124, the content items 122may be interacted with, as disclosed herein. The user interface metricsmodule 202 may note those interactions for each content item 122 and/orthe lack of interactions thereof. In various examples, the userinterface metrics module 202 may also optionally note the position 402in which the content item 122 was displayed when it was or was notinteracted with. It is noted that the position 402 may be superfluous ifthe content item 122 is displayed randomly or sequentially varying on arelatively large number of user interfaces 204.

For a given content item 122 as displayed on user interfaces 204, theuser interface metrics module 202 may note the rate at which the contentitem 122 was the subject of a user interaction in comparison with thefirst-pass ranking that the content item source 124 provided for thecontent item 122. The user interface metrics module 202 may comparethose figures with the expected interaction performance of a contentitem 122 that has been placed in the positions in which the givencontent item 122 has been placed.

The various content item sources 124 may perform first-pass ranking andother assessments according to schemas that are not consistent among allof the content item sources 124. Thus, in an example, a first contentitem sources 124 may operate according to a first selection schema thatseeks to determine a selection metric indicative of the likelihood thata given content item 122 will be interacted with by a user. The firstcontent item source 124 may further operate according to a first valueschema that seeks to determine a value metric of a content item 122 asif the content item 122 were a piece of sponsored content. It is notedthat, if the content item 122 is, in fact, a piece of sponsored content,and the content item source 124 is, for instance, an advertising index,the actual bid for the sponsored content item may be the value metric.The value metric may, in various examples, be a value in a currency,such as United States dollars or other national or internationalcurrency.

In contrast to the first content item source 124, the second contentitem source 124 may operate according to a second selection schemadifferent from the first selection schema and a second value schemadifferent from the first value schema. Most generally, selection schemasand value schemas may differ between content item sources 124 if thesame content item 122 receives a different selection metric when runagainst the first selection schema and the second selection schema. Itis to be noted, however, that most or all content items 122 may only berun against one selection schema and one value schema because contentitems 122 may tend only to be stored in one content item source 124.

For instance, in the illustrative example, for a sample content item122, the content item source 124 may provide a first-pass rank thatsuggests that the content item 122 is at the seventy-fifth (75^(th))percentile for likely user interaction and should optimally be placed inthe third position 402(3). In the example, the user interface metricsmodule 202 has previously determined that, on average, a content item122 randomly placed in the news feed 400 that is expected to be in theseventy-fifth percentile and/or is placed in the third position 402(3)is interacted with by a user, on average, eleven (11) percent of thetime. In the illustrative example, the user interface metrics module 202determines that, overall, the sample content item 122 is interacted withthirteen (13) percent of the time both overall and in the third position402(3).

On that basis, the user interface metrics module 202 may determine thatthe content item source 124 that provided the content item 122understates or underestimates the likely performance of the contentitems 122 it ranks The user interface metrics module 202 may perform thetesting mode analysis on multiple content items 122 from multiplecontent item sources 124. Ultimately, the user interface metrics module202 may characterize some or all of the content item sources 124according to the degree by which the content item sources 124overestimate or underestimate the likely user interaction with thecontent items 122 the content item source 124 provides. Thus, for thecontent item source 124 that provided the sample content item 122referenced above, the user interface metrics module 202 may utilizedozens or more content items 122 from the content item source 124 todetermine that the content item source 124 consistently underestimatesthe user engagement rate for the content items 122 it provides by two(2) percentage points. Other content item sources 124 may be determinedto overestimate by various percentages or be essentially accurate intheir assessments.

In the federating mode, the federator module 108 may obtain, from thevarious content item sources 124, content items 122 and an associatedselection metric and an associated value metric for each content item122. The federator module 108 may request a predetermined number ofcontent items 122 from some or all of the content item sources 124 orthe content item sources 124 may individually determine how many contentitems 122 to send to the federator module 108. It is to be furtherrecognized that the content item sources 122 may, at least initially,transmit a list or index of content items to the federator module 108 atleast until the content items 122 are selected by the federator module108 for display on the user interface 204, upon which point the contentitems 122 themselves may be provided.

The federator module 108 may further obtain, from the user interfacemetrics module 202, indications of the interactions with the contentitems 122 from the various content item sources 124. The indications ofthe interactions may be on the basis of individual content items 122that have been tested in the testing mode or on the basis of completecontent item sources 124 that have been tested in the testing mode.

The federator module 108 may determine an engagement value for each ofthe content items based on the data from the user interface metricsmodule 202. The engagement value may be representative of the inherentvalue of the content itself to the social network without respect to anymoney the content item 122 may actually earn for the social networksystem 100. Put another way, the engagement value may reflect theoverall value to the social network of having good content to drivetraffic to the social network without respect to directly making moneyoff of that content.

In an example, the inherent value represented by the engagement valuemay vary, at least in part, based on either the user from whom thecontent item 122 was received or to whom the content item is to bedisplayed. Thus, certain content items 122 may have a higher engagementfor certain types of users than other types of users. The federatormodule 108 may adjust the engagement value for a content item 122 basedon user profile data 116 and activities 118 for the user to whom thecontent item is displayed. Thus, for instance, the engagement value fora content item 122 received from a CEO may be doubled relative to theengagement value for a content item 122 received from a non-managerialemployee of the same company.

If the user interface metrics module 202 provided data for theparticular content item 122 then the engagement value may be based onlyon the data related to that content item 122. If the user interfacemetrics module 202 provided data for the content item source 124 thenall of the content items 122 from that source 124 may have an engagementvalue determined based on the same factors.

The engagement value may be the equivalent to a monetary value that, inessence, adjusts the selection metric and value metric of the contentitem 122 to account for the overestimation or underestimation of thelikely interaction or value of the content item 122 by the selection andvalue schemas of the content item source 124. Thus, for instance, in theabove example, the federator module 108 may determine that the value ofa content item 122 from the sample first content item source 124described above should be increased by $0.005 to account for the factthat the content items 122 from that source routinely underestimates theuser interaction with the content items 122 by two (2) percentagepoints.

It is to be emphasized that the engagement and monetary values are, infact, unit-less and may have any suitable numerical value. For thepurposes of explanation in the disclosure herein, the values disclosedherein have been normalized to an equivalent monetary value. Thus, in asimplified description for the purposes of illustration, the engagementvalue is in essence described as being calculated as an equivalentmonetary value and combined with an actual monetary value to create theutility value of equivalent monetary value. However, it is to be notedand emphasized that the utility value does not need to represent anequivalent monetary value and rather can be directed at any “value” thatadministrators of the social network may have.

Thus, while the steps described herein may relate to bringing theengagement value into line with the monetary value, the opposite mayreadily be implemented to bring the monetary value in alignment with theengagement value according to the same principles. Thus, in a simplifiedexample, one user interaction with a content item may have an engagementvalue of “1”, and monetary values may, for instance, be multiplied by afactor of twenty (20); i.e., a monetary value of $0.005 is theequivalent to one interaction. It is to be readily understood that anysuitable values value ranges may be implemented.

As such, the utility value may express a propensity for an associatedcontent item to lead to any outcome that has value to the socialnetwork. In an example, the utility value may be tied to a number of“down-stream” interactions that may stem from an initial interactionwith a content item. A down-stream interaction may stem from, forinstance, a member selecting a link for a content item as the initialinteraction, and any subsequent selections of links or comments and thelike on the webpage that was linked to would be a down-streaminteraction. The relative value of down-stream interactions may beidentified based on social network policies in relation to the value ofsponsored content items and implemented according to the principlesdescribed herein. Further examples of the actual policy or objective ofthe utility value, such as growth of the membership of the socialnetwork, may similarly be implemented according to these principles. Assuch, federator module 108 may be sensitive to the impact on thoseobjectives that the changes to the initial rankings of the content itemsources may cause and adjust the changes accordingly.

FIG. 5 is a graphic illustration 500 of the relationship between theselection metric and the value metric, in an example embodiment. Thex-axis 502 depicts the selection metric, such as the number of userinteractions with a content item, while the y-axis 504 depicts the valuemetric, such as the value of the content item 122 if it were a piece ofsponsored content. The curve 506 reflects how changes in the selectionmetric are reflected in the changes in the value metric and, as aconsequence, the engagement value of the content item 122. According tothis curve, increasing the selection metric by two (2) percentage pointsfrom a first point 508 to a second point 510 may produce the $0.005engagement value referenced above.

The federator module 108 may then generate a utility value for each ofthe content items 122. The utility value reflects an engagementcomponent and a monetary component. The engagement component is, in anexample, comprised of the selection metric multiplied by the engagementvalue. The value component is, in an example, comprised of the valuemetric. The engagement component and the value component are, in anexample, added together to obtain the utility value. The utility valuemay represent a normalized value for the content item 122. In variousexamples, the federator module obtains a utility value for each of thecontent items obtained from the content item sources 124.

In an example, the utility value will depend on a status of the contentitem 122 as organic content or sponsored content. The utility value of asponsored content item may be the engagement component (e.g., theengagement value multiplied by the selection metric) added to the valuemetric. The value metric for the sponsored content item may be a bidthat the sponsoring entity has paid or will pay for the sponsoredcontent item multiplied by the selection metric. In an example, thevalue metric is thus computed by multiplying the estimated interactionrate for the sponsored content item by the amount of money thesponsoring entity promised to pay every time the sponsored content itemis selected by a user. Thus, the utility value for a sponsored contentitem would be the sum of the expected monetary value of the sponsoredcontent item and the engagement value of the sponsored content item. Putanother way, the value of a sponsored content item may be realized inboth the ability of the content item 122 to drive user engagement withthe social network and the ability of the content item 122 to directlygenerate revenue.

The utility value of an organic or unsponsored content item, on theother hand, would, in the above example, be based entirely on theability of the content item 122 to generate engagement with the socialnetwork. Thus, the utility value for the organic content item would beonly the engagement component (the engagement value multiplied by theselection metric). Thus, it may be discerned that a piece of organiccontent that drives a great deal of user engagement may have a higherutility value than a piece of sponsored content that that drivesrelatively little user engagement. Further, a piece of sponsored contentthat has the same or similar user engagement as an organic content itemwould have the higher utility value because of the monetary component;all other things being equal, the utility value for a content item 122that is sponsored would be higher than the utility value of a sponsoredcontent item 122 that is organic.

The federator module 108 may thus, in essence, establish a normalized,monetary value for each of the content items 122 it receives for displayon the news feed 400 of the user interface 204. In so doing, thefederator module 108 may both consistently establish the relative valueof the content items 122 it receives, regardless of the first-passranker schemas utilized by the content item sources 124, and provide aframework by which the value of a sponsored content item may be comparedagainst an organic content item and vice versa. Thus, both the value ofthe organic content items may be quantified and organic content itemsmay be accurately positioned relative to sponsored content items on thenews feed 400.

In particular, the federator module 108 may include, as part of thestream 200, the relative utility values of the content items 122 to theuser interface module 102. Alternatively, the federator module 108 maysimply order the content items 122 within the stream 200 according totheir respective utility values. The user interface module 102 may thencause the content items 122 to be sequentially placed in the positions402, at least in part according to their utility values. Thus, in anexample, the highest utility value may be positioned in the firstposition 402(1), the second highest utility value in the second position402(2), and so forth. Alternatively, additional factors may beimplemented in order to meet certain conditions.

The conditions may, in various cases, specify displaying sufficientsponsored content items to generate a maximal amount of revenue whilemaintaining user engagement, in the form of interactions with thecontent items above a predetermined threshold. Thus, the sum of theengagement components of some or all of the content items 122 that maybe displayed over a period of time may be plotted against the sum of thevalue components of the content items 122 that may be displayed over aperiod of time. In selecting the content items 122 for the stream, thefederator module 108 may select content items with sufficiently highengagement components to maintain the desired user engagement and then,among that population, select the content items 122 with the highestvalue component.

The above example is simplified and it is to be understood thatmulti-objective optimization techniques may be applied to the populationof content items 122 as appropriate. The constraints of themulti-objective optimization may be applied separately to differenttypes of users depending on the activities 118 conducted by theindividual users. Thus, certain users may be relatively more likely toselect sponsored content items than other users. Those users may bepresented with more sponsored content items than other users, therebypotentially increasing both the value metric, as sponsored content maybe directed to the users most likely to select the sponsored content andthus provide the revenue, as well as engagement, as more scope may thusbe had to display content items 122 with relatively high engagementcomponents.

The principles applied to direct knowledge of the propensity of users toselect sponsored content may be applied based on general usercharacteristics. Thus, it may be determined that males of a certain age,education, and career may be relatively more likely to select sponsoredcontent than women of the same age, education, and career. Thoserelationships may be determined empirically, such as by beingobjectively determined in the testing mode. The difference in thelikelihood of a certain demographic of user to select or not selectsponsored content may produce a proportional increase in the rate atwhich sponsored content is displayed. Thus, if a certain demographic ofuser is twenty-five percent more likely to select a sponsored contentitem than the average user then users of that demographic may bepresented with twenty-five percent more sponsored content.Alternatively, the additional sponsored content a user is presented withmay be selected as a multi-objective optimization variable, such as tomaximize revenue while maintaining user engagement, and may notnecessarily be tied to any particular percentage.

The federator module 108 may be configured to retain sponsored contentitems in a particular order prior to or while including the sponsoredcontent items in the stream 200. In various examples, sponsored contentitems 200 may be ranked with respect to one another prior to determiningand applying the engagement value to the sponsored content items. Afterobtaining the engagement value, the sponsored content items may bere-ranked with respect to the organic content items. However, in certainexamples, the sponsored content items may not be re-ranked with respectto one another. Doing so may maintain the relative position of thesponsored content items for regulatory purposes. The fixing of theposition of certain content items 122 with respect to one another may beconfigurable based on any regulatory requirements in any relevantjurisdictions. The fixing of the position of certain content items 122may also be based on business needs or any other suitable factors.

The principles described herein with regard to the federation ofindividual content items 122 apply as well to the federation ofaggregated content items. An aggregated content item may be acombination of individual content items 122 combined or otherwise placedtogether so that they may be displayed in a signal position 402, incontrast with conventional, individual content items 122 which aredisplayed one per position 402. The aggregated content item may be madeup of individual content items 122 that are related to one another insome way, such as by being related to common news or members of thesocial network who share a common personal characteristic 116, such as ajob, a job status, a school, and so forth.

Individual content items 122 as displayed on the news feed 400 may notgenerate much user interaction by themselves but may generate moreinterest when presented as a aggregated content item. For instance, thenews that a first member has changed jobs to Company X may not generatemuch interest by itself. However, an aggregated content item that sevenmembers have all changed jobs to Company X in the last three days maygenerate much more user interaction than seven separately-listed contentitems 122.

An aggregated content item 122A is illustrated in the user interface 204in FIG. 4. In contrast to conventional content items 122, the aggregatedcontent item references more than one discrete event, occurrence, ormember. Thus, the aggregated content item 122A states that members X, Y,and Z all joined Company A in the last two days. A conventional,non-aggregated content item 122 might merely state that member X joinedCompany A yesterday, by way of illustration.

The federator module 108 may be configured to rank the aggregatedcontent item 122A consistent with the ranking of other content items 122described herein. That is to say, the federator module 108 may determinea utility value for the aggregated content item 122A based on anengagement value of the aggregated content item 122A and, if theaggregated content item 122A is a sponsored aggregated content item 122Aor includes at least some sponsored content, a monetary value as well.

In an example, a distribution of utility values of the constituentcontent items 122 of the aggregated content item 122A may be utilized todetermine the utility value of the aggregated content item 122A. Thedistribution of utility values of the constituent content items 122 mayalso be utilized by the federator module 108 to determine if individualcontent items 122 should be removed from the aggregated content item122A in order to improve the overall utility value of the content items122 included in the aggregated content item 122A. While utility valueswill be discussed herein, it is to be recognized and understood that anyof a variety of metrics may be utilized for decision regarding theaggregation of content items. For instance, basic estimated selectionmetrics, such as estimated interactions or click-through-rates, may beutilized in addition to or instead of the utility value.

To determine the utility value of an aggregated content item 122A or, invarious examples, a proposed aggregated content item 122A, the federatormodule 108 utilize multiple models based on various factors. The modelsmay be empirically determined based on arbitrarily generating aggregatedcontent items 122A in the testing mode described herein and randomlypresenting those aggregated content items 122A on user interfaces 204.In various examples, individual models are based on a distribution ofutility values of the constituent content items 122, a time since orover which the content items 122 were obtained or generated, and anoverall number of content items 122 in the news feed 400.

The distribution model may be based on an average of utility values ofindividual content items 122, a maximum one of the utility values of theindividual content items 122, a minimum one of the utility values of theindividual content items 122, and a standard deviation of the utilityvalues of the individual content items 122, among other potentialfactors. The interplay of those factors may be determined empirically.In an example, the distribution model may determine the utility value ofthe aggregated content item 122 by computing the average utility valueof the constituent content items 122 and adjusting for the standarddeviation of the utility values of the content items 122.

Thus, for instance, it may have been empirically determined that thedistribution model tends to produce an accurate utility value for theaggregated content item 122A based on the average of the utility valuesof the individual content items 122A adjusted upward for a relativelysmall standard deviation and adjusted downward for a relatively largestandard deviation. For instance, a standard deviation less thantwenty-five percent of the average may be “small” and provide a bonuswhile a standard deviation greater than or equal to twenty-five percentmay be “large” and provide a penalty. The bonuses and penalties may beproportional to size of the standard deviation. By way of illustration,if the average utility value is 0.005 and the standard deviation is0.001 then the utility value of the aggregated content item may be0.005+10*(0.00125−0.001)=0.0075, where the “0.005” value is the averageutility value of the content items 122, the “0.00125” value istwenty-five percent of the average, the “0.001” value is the standarddeviation, and the “10” value is an empirically-determined bonusmultiplier. The distribution model, then, would provide a utility valuefor the aggregated content item 122A of 0.0075.

The time and amount of content items 122 models may function in the sameor similar ways. The time model may assign bonus utility values tocontent items 122 based on a time since the content item 122 in questionwas generated. The utility values may be assigned based on anempirically-determined decay model. For example, a content item 122 thatis less than one day old may have a bonus utility value of 0.001, morethan one but less than two days old may be 0.0005, more than two butless than three days may be 0.0025, and so forth. The utility values forthe time model may then be combined utilizing some or all of the factorsfor the distribution model, e.g., average, minimum, maximum, andstandard deviation.

Relatedly, the overall number of content items 122 in the news feed 400may tend to factor the utility values of individual content items 122over the utility value of the aggregated content item 122A so as toprovide more or fewer content items 122 for the news feed 400. Thus, ifthe federator module 108 has relatively few content items 122 for thenews feed 400 then the individual content items 122 of the aggregatedcontent item 122A may be given a relatively high bonus utility valuewhile the aggregated content item 122A as a whole may be given arelatively low bonus utility value. By so doing, the content items 122of the aggregated content item 122A may be more likely to be broken outof the aggregated content item 122A and presented individually on thenews feed 400. Conversely, if the federator module 108 has a relativelylarge number of available content items 122 then the federator module108 may subtract utility value from the content items 122 of theaggregated content item 122A, making the content items 122 more likelyto remain part of the aggregated content item 122A.

The individual models may all be individually implemented and thenmanipulated together or otherwise compared. In an example, theindividual models may be averaged or may be added together to obtain afinal utility value for the aggregated content item 122A. Alternatively,only one determined utility value may be utilized, for instance byselecting a maximum value, minimum value, or middle value among theutility values provided by the various models. Further alternatively,individual models may be separately assessed in the testing mode andgiven bonus or negative weight or otherwise favored or disfavored basedon the performance in the testing mode. Thus, a model that consistentlyaccurately provides a utility value may be weighted higher than a modelthat inconsistently provides accurate utility values. Alternatively,only the best single model may be utilized, though other models may beused, particularly in testing mode, to seek to improve the results ofthe models and utilize the models at a later date.

Based on the final utility value for the aggregated content item 122A,the federator module 108 may display the aggregated content item 122A inan appropriate position 402 depending on the utility values of othercontent items 122, not display the aggregated content item 122A at all,and/or separate individual content items 122 out of the aggregatedcontent item 122A if those individual content items 122 have utilityvalues greater than the utility value of the aggregated content item122A. In an example, if the aggregated content item has a utility valueof 0.003 but one content item 122 of the aggregated content item 122Ahas a utility value of 0.004 and another has a utility value of 0.005then those content items 122 may be removed from the aggregated contentitem 122A. In various examples, the aggregated content item 122A may berecomputed to determine its new utility value or may be inserted intothe stream 200 in a position appropriate to its utility value.

The utility values of content items 122 (including herein bothindividual content items 122 and aggregated content items 122A) may bebased on a relevance of the content item 122 to the profile data 116 andactivities 118 of the member to whom the content items 122 are to be ormay be presented. In various examples, profile data 116 and activities118 may be utilized by the federator module 108 along with other factorsto adjust the utility value of content items 122. The federator module108 may thus provide content items 122 according to their value to themember to whom the content items 122 are presented rather than to ageneric or generalized member.

While the principles related to affinity are described with respect toutility values, it is to be recognized and understood that they mayapply equally well to circumstances that provide content items 122outside of the utility value framework. Thus, bonuses to simplerelevance factors or other metrics by which content items 122 may beselected for display to users of a social network may also be appliedconsistent with this disclosure.

In an example, the member may have an identifiable item-type affinity.The member may prefer certain types of content items 122 over others.Similarly, the member may dislike certain types of content items 122.The affinity for content item 122 types may be based both on inferencesfrom the profile data 116 of the member and past history as evidenced bythe member's activities 118.

In an example, a member who has profile data indicating that they are acomputer programmer may tend to have an affinity for articles and linksrelated to computer programming, computers generally, engineeringgenerally, and so forth. In an example, the utility value of such typesof content items 122 may be given a bonus for each profile data item 116that correlates with the content item 122 type. Similarly, computerprogrammers may tend to be neutral towards other types of content items122 and may affirmatively dislike other types of content items 122.

The federator module 108 may identify such correlations across multiplemembers. Thus, the federator module 108 may identify that computerprogrammers generally are fifty percent more likely to interact withcontent items related to computer programming than the population ofmembers of the social network generally. In such an example, the utilityvalue of computer programming content items 122 may be given a fiftypercent bonus. Alternatively, the bonus may be of a different percentageor may be a fixed value for matching a type with which the member has anaffinity, e.g., a bonus of 0.001 to the utility value. Any of a varietyof suitable bonuses may be applied, and such bonuses may also benegative for members who tend to dislike a content item 122 type.

The principles for profile data 116 apply as well to activities 118 fora particular member. Thus, if a member's activities 118 indicate thatthe member tends to interact with computer science content items 122forty percent more frequently than members of the social network ingeneral, the utility value of computer science content items 122 mayreceive a bonus. The bonus may be according to any suitable mechanism,including the mechanisms described above.

The bonuses may be cumulative across multiple profile data 116 andactivities 118 for a single content item 122 or may be based on a singlemost significant factor. The single most significant factor may be amember's own activities 118, with profile data 116 being utilized if inthe event the activities 118 are unavailable or not extensive enough toestablish a preference. Thus, if a member's profile data 116 indicatesthat the member would be expected to have an affinity for a content item122 type but the member's activities 118 indicate that the memberdislikes the content item 122 type then the utility value of the contentitem 122 may be reduced rather than increased.

The principles described with the item-type affinity may be applied toother concepts as well. In an example, members may have an affinity forthe source of a content item 122 rather than the content of the contentitem 122 itself. Thus, members may tend to click on links in a contentitem 122 or otherwise interact with a content item 122 if the contentitem 122 is provided by a particular source. Such sources may includeindividuals, companies, groups, and the like. Such sources may includethe social network system 100 itself, such as forautomatically-generated content items 122.

Source affinity may be unique to each member. Thus, source affinity maybe based on activities 118 for the particular member and may notnecessarily be based on profile data 116 of the member. Alternatively,certain profile data 116 may be indicative of a propensity for sourceaffinity. Thus, computer programmers may have a source affinity forcertain celebrities in computer programming that may be factored in inthe same manner described above with respect to profile data 116 anditem-type affinity.

Network-size affinity may also be utilized to provide a utility valuebonus. The social graph data 112 for a member who posts a content item122 to the social network may be compared against the social graph data112 of a member to whom the content item 122 may be presented. If thenumber of connections in the social graph data 112 of the two members isbroadly similar then the content item 122 may receive a bonus to theutility value for display on the news feed 400 of the potentialreceiving member. In an example, two social graphs 112 have a similarnumber of connections if the number of connections are withintwenty-five percent of one another. Alternative percentages or absolutenumbers of connections may be utilized as appropriate.

The bonus may be increased the closer in numbers the two social graphs112 are. Thus, the bonus may be 0.005 if the social graphs 112 arewithin twenty-five percent, 0.003 if the social graphs are betweenseventy-five and twenty-five percent, and 0.001 if the social graphs arebetween seventy-five and one hundred percent of one another. The bonusmay be negative if the social graphs 112 are larger than a certainpercentage. In an example, if the social graphs 112 are more than twohundred percent of one another then the penalty may be 0.001, and soforth. It is to be recognized that the percentages may be from comparingthe largest number of connections with the smallest number ofconnections for the purposes of this illustration. Thus, if theconnections were one hundred twenty-five and one hundred then thepercentage would be twenty-five percent. If the connections were twohundred and one hundred then the percentage would be one hundredpercent. If the connections were three hundred and one hundred then thepercentage would be two hundred percent, and so forth.

Affinities may be combined with one another to produce relatively morecomplex affinities. Thus, in an example, the content item type affinitymay be combined with the network-size affinity or network sizegenerally. Utility values between various affinity metrics may be added,multiplied, or otherwise combined together to provide a broader affinitybonus. The federator module 108 may empirically determine, for instancein the testing mode, and further correlation between individualaffinities and adjust combined bonuses accordingly. As such, thecombination of content item type affinity and network size may produce adifferent bonus depending on how those affinities relate in actualpractice.

The federator module 108 may utilize various techniques to providecontent items 122 in the news feed 400 in a manner that is financiallyefficient for the social network as well as useful to and visuallypleasing for the member to whom it is presented. In particular, thefederator module 108 may provide for blending of content items 122 sothat particular types of content items 122 do not clump or otherwisedominate the news feed 400, notwithstanding the absolute utility valuesof those content items 122. Further, the federator module 108 mayprovide for diversity of content item 122 type on the news feed 400.

Blending of content items 122 may utilize the data from the content item122 type analysis above to prevent undue clumping of content items 122of the same type from occurring. In various examples, content item typesmay include sponsored or organic content, content items provided by thesame source, content items related to the same topic, content itemsproviding the same type of information (such as members who change jobsor notices that an entity is “trending”, and so forth), and so forth.

The federator module 108 may utilize the testing mode to identifydegrees of blending, or lack thereof, that promote user interaction withcontent items 122 in the news feed 400. The federator module 108 mayempirically determine degrees of blending according to the same contentitem types in adjacent positions 402, a number of the same content itemtype in consecutive positions 402, a percentage of the same content itemtype in consecutive positions 402 (e.g., three content items 122 of thesame type in five consecutive positions 402), and so forth. Thefederator module 108 may utilize the testing mode to display contentitems 122 according to their utility values but without respect toblending concepts and then iteratively apply different blending conceptsto empirically determine blending concepts that provide for optimizeduser interaction with content items 122, optimized utility value, andany of a variety of other metrics.

In an example, the federator module 108 may operate in the testing modeto determine blending concepts by testing concepts of varyingstringency. Thus, a blending concept may mandate no content items 122 ofthe same type in adjacent positions 402. A less stringent blendingconcept may mandate that two content items 122 of the same type may bein adjacent positions 402 but not three, and so forth. Blending conceptsmay also be sensitive to certain types of content items 122 butintentionally not other types. Thus, in an example, the blendingconcepts may be sensitive or more sensitive to certain content item 122types and not others. By way of illustration, a first blending conceptmay require that sponsored content items 122 not be placed in adjacentpositions 402 while a second blending concept, implemented concurrentlywith the first blending concept, may require that not more than threecontent items 122 provided from the same source be placed in fiveconsecutive positions 402, and so forth.

It is to be recognized that certain blending concepts may be produceresults that are inconsistent or conflict with one another, such aswhere one concept suggests a placement of a content item 122 in aposition 402 but another concept determines that the content item 122cannot be placed in that position 402. In cases such as those, thefederator module 108 may establish a hierarchy for resolving conflicts.In such a hierarchy, one blending concept may control conflicts. In theabove example, the sponsored content blending concept may override thesource blending concept. The hierarchy, along with the parameters of theblending concepts, may also be set as a matter of social network policyand may not necessarily be adjusted by the federator module.

The federator module 108 may provide for diversity in the news feed 400by adjusting utility values or associated positions 402 of content items122 that are related to content items 122 that have already been seen bya user on the news feed 400 or will already have been seen by the useron the news feed 400. Thus, in various examples, a content item 122 of acontent item type with a highest utility value may be placed in a highposition 402. The federator module 108 may, depending on the diversitycriteria, adjusting the utility values or positions of lower utilityvalue content items 122 of the content item type to prevent the othercontent items 122 of the type from being in positions 402 that are tooclose to the position 402 of the highest-value content item 122.

In an example, four content items 122 of a single content item type haveutility values that would cause those content items 122 to be placed inpositions 402 on the news feed 400. The federator module 108 may thenapply a discount to the three content items 122 having the lowestutility values. In an example, each of the lowest-value three contentitems 122 would have their utility value multiplied by a predeterminedfactor, such as 0.75, and reassessed for new positions 402 in the newsfeed 400. It is noted that the reassessment of the three content items122 may result in other content items 122 of the type being repositionedaccordingly. Thus, if the second-highest-value content item 122 of thetype drops three positions 402 because of the diversity discount, thenthe content items 122 in those three positions 402 would each be movedup by one position 402.

Upon the application of the discount to the three content items 122, thefederator module 108 may reassess if the diversity requirements havebeen met. If not, the discount may be iteratively applied again to eachof the content items 122 of the type that still violate diversityrequirements; in such an example, those content items 122 that have thediscount applied twice would have a discount of 0.75̂2=0.5625. Thediscount may be iteratively applied to individual ones of the contentitems 122 of the type until the content items 122 of the type meet thediversity requirement.

The federator module 108 may rank the content items 122 it assessesaccording to their utility values and then apply diversity requirementsto all of the content items 122 that have been ranked or to apredetermined number of the highest ranked content items 122. Diversityrequirements may be applied concurrently among all of the content items122 that are ranked or to the predetermined number of the highest rankedcontent items 122. As the diversity requirements are applied to theranked content items 122, the discounts may be applied to the rankedcontent items 122 as appropriate. Thus, content items 122 that violateany of the diversity requirements may have the discount applied to theirutility values.

Following the application of the discount to the utility values of theranked content items 122, the federator module 108 may re-rank thecontent items 122 and reassess the content items 122 for the diversityrequirements. Content items 122 that, as re-ranked, violate thediversity requirements may have the discount applied again and may bere-ranked. The assessment of diversity requirements, the application ofa discount to the utility values of content items 122 that violate thediversity requirements, and the re-ranking of content items 122 may beconducted iteratively until all of the diversity requirements are met,the content items 122 as ranked settle into a steady state, or a“time-out” condition is met following a predetermined number ofiterations.

The content item 122 types may be based on a variety of factors and eachcontent item 122 may have multiple item types. In an example, contentitems 122 may be classified according to an actor of the content item122, such as a user who posted an article or a user about whom thecontent item refers. e.g., “John Doe started a new job at Company X.” Inan example, content items 122 may be classified according to a verb oraction of the content item 122; thus, in the above example, a contentitem may have as a verb or action “started a new job”. In an example,content items 122 may be classified according to an object of thecontent item 122; thus, in the above example, the object would be“Company X”.

The diversity requirement may be general in the news feed 400 or may belocal in the news feed 400. In an example, a local diversity requirementmay require diversity among the positions 402 that are displayed on thenews feed 400 at any one time but not for positions 402 that are not orcannot be displayed concurrent with the positions 402 that are currentlydisplayed. Thus, in an example, if the news feed 400 as a whole onlydisplays five positions 402 at a time then the diversity requirement mayonly be applied to the content items 122 that would be displayed inthose five positions 402 based on the initial utility value ranking

The federator module 108 may utilize the testing mode to optimizediversity requirements. The optimization may be generally applied acrossthe members and users of the social network or may be individuallyapplied to members based on those member's responses to variousdiversity requirement implementations. Thus, the federator module 108may randomly vary diversity requirements and, for instance, allow fourcontent items 122 of the same type within an eight-position 402 blockwhen the base diversity requirement is for only three content items 122of the same type and assess the reaction of users to the relativelyless-diverse requirement. If the less-diverse requirement producesgreater user interaction with content items in the news feed 400 thenthe less-diverse requirement may be implemented as the default diversityrequirement. It is to be recognized that these principles may be appliedto individual members of the social network for personalized diversityrequirements.

Flowchart

FIG. 6 is a flowchart for diversity of federated content items in asocial network, in an example embodiment. The flowchart may beimplemented according to any of a variety of example systems and methodsdisclosed herein or as may be suitable for implementing the flowchart.

At operation 600, a utility score is determined individually for each ofa plurality of content items by a processor. In an example, anelectronic data storage includes a plurality of content item sources,each of the content item sources including some of the plurality ofcontent items ranked according to one of a plurality of ranking schemas,at least two of the plurality of content items sources utilizingdifferent ones of the plurality of ranking schemas, and whereindetermining the utility score individually for each of the plurality ofcontent items is based, at least in part, on the ranking schemas.

At operation 602, the plurality of content items are ranked by theprocessor according to their individually determined utility scores.

At operation 604, at least some of the plurality of content items areassigned to positions in a user interface by the processor according tothe rank.

At operation 606, the assigning of positions is iteratively adjusted bythe processor according to a diversity criterion. In an example,iteratively adjusting the assignment of positions includes applying adiscount to the utility score of each of the plurality of content itemsthat violates the diversity criterion. In an example, the discountincreases with each iteration. In an example, the discount increasesexponentially with each iteration. In an example, iteratively adjustingthe assignment of positions includes applying to the utility score bymultiplying the utility score by the discount. In an example, thediversity criterion is one of multiple diversity criteria anditeratively adjusting the assigning of positions is according to thediversity criteria such that the discount is applied to each one of theplurality of content items that violates the any one of the diversitycriteria.

In an example, the diversity criterion is according to an object of theplurality of content items. In an example, the diversity criterion isaccording to a verb of the plurality of content items. In an example,the diversity criterion is according to an actor of the plurality ofcontent items.

At operation 608, a user interface is caused by the processor to displaythe at least some of the plurality of content items according to thepositions as iteratively adjusted

System

FIG. 7 is a block diagram illustrating components of a machine 700,according to some example embodiments, able to read instructions from amachine-readable medium (e.g., a machine-readable storage medium) andperform any one or more of the methodologies discussed herein.Specifically, the machine 700 may implement the social network system100 and the features included and described therein. The machine 700thus describes specific hardware configurations on which the socialnetwork system 100 may be implemented and provided to users of thesocial network system 100.

FIG. 7 shows a diagrammatic representation of the machine 700 in theexample form of a computer system and within which instructions 724(e.g., software) for causing the machine 700 to perform any one or moreof the methodologies discussed herein may be executed. In alternativeembodiments, the machine 700 operates as a standalone device or may beconnected (e.g., networked) to other machines. In a networkeddeployment, the machine 700 may operate in the capacity of a servermachine or a client machine in a server-client network environment, oras a peer machine in a peer-to-peer (or distributed) networkenvironment. The machine 700 may be a server computer, a clientcomputer, a personal computer (PC), a tablet computer, a laptopcomputer, a netbook, a set-top box (STB), a personal digital assistant(PDA), a cellular telephone, a smartphone, a web appliance, a networkrouter, a network switch, a network bridge, or any machine capable ofexecuting the instructions 724, sequentially or otherwise, that specifyactions to be taken by that machine. Further, while only a singlemachine is illustrated, the term “machine” shall also be taken toinclude a collection of machines that individually or jointly executethe instructions 724 to perform any one or more of the methodologiesdiscussed herein.

The machine 700 includes a processor 702 (e.g., a central processingunit (CPU), a graphics processing unit (GPU), a digital signal processor(DSP), an application specific integrated circuit (ASIC), aradio-frequency integrated circuit (RFIC), or any suitable combinationthereof), a main memory 704, and a static memory 706, which areconfigured to communicate with each other via a bus 708. The machine 700may further include a graphics display 710 (e.g., a plasma display panel(PDP), a light emitting diode (LED) display, a liquid crystal display(LCD), a projector, or a cathode ray tube (CRT)). The machine 700 mayalso include an alphanumeric input device 712 (e.g., a keyboard), acursor control device 714 (e.g., a mouse, a touchpad, a trackball, ajoystick, a motion sensor, or other pointing instrument), a storage unit716, a signal generation device 718 (e.g., a speaker), and a networkinterface device 720.

The storage unit 716 includes a machine-readable medium 722 on which isstored the instructions 724 (e.g., software) embodying any one or moreof the methodologies or functions described herein. The instructions 724may also reside, completely or at least partially, within the mainmemory 704, within the processor 702 (e.g., within the processor's cachememory), or both, during execution thereof by the machine 700.Accordingly, the main memory 704 and the processor 702 may be consideredas machine-readable media. The instructions 724 may be transmitted orreceived over a network 726 via the network interface device 720.

As used herein, the term “memory” refers to a machine-readable mediumable to store data temporarily or permanently and may be taken toinclude, but not be limited to, random-access memory (RAM), read-onlymemory (ROM), buffer memory, flash memory, and cache memory. While themachine-readable medium 722 is shown in an example embodiment to be asingle medium, the term “machine-readable medium” should be taken toinclude a single medium or multiple media (e.g., a centralized ordistributed database, or associated caches and servers) able to storeinstructions. The term “machine-readable medium” shall also be taken toinclude any medium, or combination of multiple media, that is capable ofstoring instructions (e.g., software) for execution by a machine (e.g.,machine 700), such that the instructions, when executed by one or moreprocessors of the machine (e.g., processor 702), cause the machine toperform any one or more of the methodologies described herein.Accordingly, a “machine-readable medium” refers to a single storageapparatus or device, as well as “cloud-based” storage systems or storagenetworks that include multiple storage apparatus or devices. The term“machine-readable medium” shall accordingly be taken to include, but notbe limited to, one or more data repositories in the form of asolid-state memory, an optical medium, a magnetic medium, or anysuitable combination thereof.

Throughout this specification, plural instances may implementcomponents, operations, or structures described as a single instance.Although individual operations of one or more methods are illustratedand described as separate operations, one or more of the individualoperations may be performed concurrently, and nothing requires that theoperations be performed in the order illustrated. Structures andfunctionality presented as separate components in example configurationsmay be implemented as a combined structure or component. Similarly,structures and functionality presented as a single component may beimplemented as separate components. These and other variations,modifications, additions, and improvements fall within the scope of thesubject matter herein.

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied on a machine-readable medium or ina transmission signal) or hardware modules. A “hardware module” is atangible unit capable of performing certain operations and may beconfigured or arranged in a certain physical manner. In various exampleembodiments, one or more computer systems (e.g., a standalone computersystem, a client computer system, or a server computer system) or one ormore hardware modules of a computer system (e.g., a processor or a groupof processors) may be configured by software (e.g., an application orapplication portion) as a hardware module that operates to performcertain operations as described herein.

In some embodiments, a hardware module may be implemented mechanically,electronically, or any suitable combination thereof. For example, ahardware module may include dedicated circuitry or logic that ispermanently configured to perform certain operations. For example, ahardware module may be a special-purpose processor, such as a fieldprogrammable gate array (FPGA) or an ASIC. A hardware module may alsoinclude programmable logic or circuitry that is temporarily configuredby software to perform certain operations. For example, a hardwaremodule may include software encompassed within a general-purposeprocessor or other programmable processor. It will be appreciated thatthe decision to implement a hardware module mechanically, in dedicatedand permanently configured circuitry, or in temporarily configuredcircuitry (e.g., configured by software) may be driven by cost and timeconsiderations.

Accordingly, the phrase “hardware module” should be understood toencompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired), or temporarilyconfigured (e.g., programmed) to operate in a certain manner or toperform certain operations described herein. As used herein,“hardware-implemented module” refers to a hardware module. Consideringembodiments in which hardware modules are temporarily configured (e.g.,programmed), each of the hardware modules need not be configured orinstantiated at any one instance in time. For example, where a hardwaremodule comprises a general-purpose processor configured by software tobecome a special-purpose processor, the general-purpose processor may beconfigured as respectively different special-purpose processors (e.g.,comprising different hardware modules) at different times. Software mayaccordingly configure a processor, for example, to constitute aparticular hardware module at one instance of time and to constitute adifferent hardware module at a different instance of time.

Hardware modules can provide information to, and receive informationfrom, other hardware modules. Accordingly, the described hardwaremodules may be regarded as being communicatively coupled. Where multiplehardware modules exist contemporaneously, communications may be achievedthrough signal transmission (e.g., over appropriate circuits and buses)between or among two or more of the hardware modules. In embodiments inwhich multiple hardware modules are configured or instantiated atdifferent times, communications between such hardware modules may beachieved, for example, through the storage and retrieval of informationin memory structures to which the multiple hardware modules have access.For example, one hardware module may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware module may then, at a latertime, access the memory device to retrieve and process the storedoutput. Hardware modules may also initiate communications with input oroutput devices, and can operate on a resource (e.g., a collection ofinformation).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions describedherein. As used herein, “processor-implemented module” refers to ahardware module implemented using one or more processors.

Similarly, the methods described herein may be at least partiallyprocessor-implemented, a processor being an example of hardware. Forexample, at least some of the operations of a method may be performed byone or more processors or processor-implemented modules. Moreover, theone or more processors may also operate to support performance of therelevant operations in a “cloud computing” environment or as a “softwareas a service” (SaaS). For example, at least some of the operations maybe performed by a group of computers (as examples of machines includingprocessors), with these operations being accessible via a network (e.g.,the Internet) and via one or more appropriate interfaces (e.g., anapplication program interface (API)).

The performance of certain of the operations may be distributed amongthe one or more processors, not only residing within a single machine,but deployed across a number of machines. In some example embodiments,the one or more processors or processor-implemented modules may belocated in a single geographic location (e.g., within a homeenvironment, an office environment, or a server farm). In other exampleembodiments, the one or more processors or processor-implemented modulesmay be distributed across a number of geographic locations.

Some portions of this specification are presented in terms of algorithmsor symbolic representations of operations on data stored as bits orbinary digital signals within a machine memory (e.g., a computermemory). These algorithms or symbolic representations are examples oftechniques used by those of ordinary skill in the data processing artsto convey the substance of their work to others skilled in the art. Asused herein, an “algorithm” is a self-consistent sequence of operationsor similar processing leading to a desired result. In this context,algorithms and operations involve physical manipulation of physicalquantities. Typically, but not necessarily, such quantities may take theform of electrical, magnetic, or optical signals capable of beingstored, accessed, transferred, combined, compared, or otherwisemanipulated by a machine. It is convenient at times, principally forreasons of common usage, to refer to such signals using words such as“data,” “content,” “bits,” “values,” “elements,” “symbols,”“characters,” “terms,” “numbers,” “numerals,” or the like. These words,however, are merely convenient labels and are to be associated withappropriate physical quantities.

Unless specifically stated otherwise, discussions herein using wordssuch as “processing,” “computing,” “calculating,” “determining,”“presenting,” “displaying,” or the like may refer to actions orprocesses of a machine (e.g., a computer) that manipulates or transformsdata represented as physical (e.g., electronic, magnetic, or optical)quantities within one or more memories (e.g., volatile memory,non-volatile memory, or any suitable combination thereof), registers, orother machine components that receive, store, transmit, or displayinformation. Furthermore, unless specifically stated otherwise, theterms “a” or “an” are herein used, as is common in patent documents, toinclude one or more than one instance. Finally, as used herein, theconjunction “or” refers to a non-exclusive “or,” unless specificallystated otherwise.

What is claimed is:
 1. A system, comprising: a network interfaceconfigured to communicate with a user device via a network; anelectronic data storage including a plurality of content items; aprocessor, configured to: determine a utility score individually foreach of a plurality of content items; rank the plurality of contentitems according to their individually determined utility scores; assignat least some of the plurality of content items to positions in a userinterface according to the rank; iteratively adjust the assigning ofpositions according to a diversity criterion; and cause a user interfaceto display the at least some of the plurality of content items accordingto the positions as iteratively adjusted.
 2. The system of claim 1,wherein processor is further configured to iteratively adjust theassignment of positions by applying a discount to the utility score ofeach of the plurality of content items that violates the diversitycriterion.
 3. The system of claim 2, wherein the discount increases witheach iteration.
 4. The system of claim 3, wherein the discount increasesexponentially with each iteration.
 5. The system of claim 2, wherein thediscount is applied to the utility score by multiplying the utilityscore by the discount.
 6. The system of claim 2, wherein the diversitycriterion is one of multiple diversity criteria and wherein theprocessor is configured to iteratively adjust the assigning of positionsaccording to the diversity criteria such that the discount is applied toeach one of the plurality of content items that violates the any one ofthe diversity criteria.
 7. The system of claim 1, wherein the diversitycriterion is according to an object of the plurality of content items.8. The system of claim 1, wherein the diversity criterion is accordingto a verb of the plurality of content items.
 9. The system of claim 1,wherein the diversity criterion is according to an actor of theplurality of content items.
 10. The system of claim 1, wherein theelectronic data storage includes a plurality of content item sources,each of the content item sources including some of the plurality ofcontent items ranked according to one of a plurality of ranking schemas,at least two of the plurality of content items sources utilizingdifferent ones of the plurality of ranking schemas, and wherein theprocessor is further configured to determine the utility scoreindividually for each of the plurality of content items based, at leastin part, on the ranking schemas.
 11. A method, comprising: determine,with a processor, a utility score individually for each of a pluralityof content items; rank, with the processor, the plurality of contentitems according to their individually determined utility scores; assign,with the processor, at least some of the plurality of content items topositions in a user interface according to the rank; iteratively adjust,with the processor, the assigning of positions according to a diversitycriterion; and cause, with the processor, a user interface to displaythe at least some of the plurality of content items according to thepositions as iteratively adjusted.
 12. The method of claim 11, whereiniteratively adjusting the assignment of positions includes applying adiscount to the utility score of each of the plurality of content itemsthat violates the diversity criterion.
 13. The method of claim 12,wherein the discount increases with each iteration.
 14. The method ofclaim 13, wherein the discount increases exponentially with eachiteration.
 15. The method of claim 12, wherein iteratively adjusting theassignment of positions includes applying to the utility score bymultiplying the utility score by the discount.
 16. The method of claim12, wherein the diversity criterion is one of multiple diversitycriteria and wherein iteratively adjusting the assigning of positions isaccording to the diversity criteria such that the discount is applied toeach one of the plurality of content items that violates the any one ofthe diversity criteria.
 17. The method of claim 11, wherein thediversity criterion is according to an object of the plurality ofcontent items.
 18. The method of claim 11, wherein the diversitycriterion is according to a verb of the plurality of content items. 19.The method of claim 11, wherein the diversity criterion is according toan actor of the plurality of content items.
 20. The method of claim 11,wherein the electronic data storage includes a plurality of content itemsources, each of the content item sources including some of theplurality of content items ranked according to one of a plurality ofranking schemas, at least two of the plurality of content items sourcesutilizing different ones of the plurality of ranking schemas, andwherein determining the utility score individually for each of theplurality of content items is based, at least in part, on the rankingschemas.